
  War of the Lions Tweak v2.52 - Encounter Unscaling:

    This document explains the process I used to assign levels to each monster in each random battle location
    for the "Encounter Unscaling" optional feature. This is optional supplemental reading material that
    technically has spoilers (for locations and monsters - not for the story). Read on if this sort of thing
    interests you. If not, playing the game without reading this is totally fine!

    If you want this feature, apply the wotltweakv2.52_optional_encounter_unscaling.ppf patch
    (in the "Optional Features" folder).


**************************************************************************************************************

  Step 1.) Location Base Levels

    For each map that can have random battles (each green dot on the world map), I took a look at the story
    battle that introduces the map, noted the lowest and highest enemy levels, then added 1 to the highest to
    get my starting range per area. In some cases, I slightly tweaked a map's level range in order to achieve
    a smoother progression from the previous map or to the next map. For maps that don't have story battles,
    I simply picked levels that made sense based on when the map unlocks.

    Here are the results:

        Mandalia Plains     | Levels 01-03       Grogh Heights    | Levels 24-28
        Siedge Weald        | Levels 02-04       The Yuguewood    | Levels 27-31
        Zeklaus Desert      | Levels 03-06       Mount Bervenia   | Levels 29-34
        Lenalian Plateau    | Levels 05-08       Dugeura Pass     | Levels 30-35
        Fovoham Windflats   | Levels 06-09       Finnath Creek    | Levels 31-36
        Araguay Woods       | Levels 08-11       Beddha Sandwaste | Levels 33-38
        Zeirchele Falls     | Levels 09-12       Mount Germinas   | Levels 35-40
        Balias Tor          | Levels 11-14       Lake Poescas     | Levels 37-42
        Tchigolith Fenlands | Levels 13-16       Dorvauldar Marsh | Levels 40-45
        Balias Swale        | Levels 15-19       Midlight's Deep  | Still Scaled!


    Notes:

    * Later in the process I ended up throwing out the high number for the above level ranges and instead used
      only the low number as a location's "base level", with more powerful monsters adding more onto this
      number. Particularly powerful monsters will end up violating these ranges.

    * Siedge Weald's story battle, for whatever reason, was scaled as if it were a random battle. So I gave it
      a range between Mandalia Plains and Zeklaus Desert, then unscaled its story battle alongside its random
      battles.

    * Same goes for Finnath Creek. It's probably because these story battles feature monsters exclusively.

    * Aside from those two cases, there are some isolated monsters in story battles that are scaled (alongside
      normal non-scaled enemies). I left these ones alone, since they don't seem to be harming anything. I'm
      guessing that having some (but not all) scaled enemies in story battles was a strategy for slightly
      smoothing out the difficulty - helping out just a bit if you're underleveled or overleveled.

    * The huge jump between Balias Swale and Grogh Heights happens because there are a ton of story battles
      that happen on already-unlocked locations between these two maps. In other words, once you get to Balias
      Swale, you won't discover any new world map dots for a long time.

    * Mount Bervenia doesn't have a story battle, but it unlocks before Dugeura Pass, so I set its level range
      to be just 1 lower.

    * Dorvauldar Marsh doesn't have a story battle, and it's the final map that unlocks, so I gave it a bit of
      a boost of +3 levels over Lake Poescas.

    * Midlight's Deep remains scaled in order to ensure that it's always a good endgame challenge.

    * "Rare" random battles (such as the all ninjas battle in Araguay Woods) remain scaled as well. These
      battles felt less interesting and unique when unscaled during playtesting, so I restored their scaling.


**************************************************************************************************************

  Step 2.) Monster Modifiers

    Next, I ranked the monster types in order of how powerful or terrifying the player expects them to be as a
    starting point for assigning them levels in each battle. This list is pretty subjective, but it was based
    on my memories and impressions from playing through this game 15 or so times (and has since survived
    multiple rounds of playtesting).

    From least to most dangerous or scary:

        Pigs
        Goblins
        Panthers
        Skeletons
        Floating Eyes
        Aevis
        Mindflayers
        Ghosts
        Treants
        Minotaurs
        Human Classes
        Bombs
        Chocobos
        Malboros
        Behemoths
        Dragons
        Hydras


    The next step was to assign level modifiers to each monster type, which will eventually be added to the
    location's base level. Monster "upgrades" (for example, from Goblin to Black Goblin) will be worth +1 or
    +2 levels, depending on the monster type.

    Monster level modifiers:

        -2 Pig              | -1 Swine            | +0 Wild Boar
        -1 Goblin           | +0 Black Goblin     | +1 Gobbledygook
        +0 Red Panther      | +2 Coeurl           | +4 Vampire Cat
        +0 Skeleton         | +2 Bonesnatch       | +4 Skeletal Fiend
        +0 Human (Squire)   | +2 Human            | +4 Human (Elite Classes)
        +0 Floating Eye     | +2 Ahriman          | +4 Plague Horror
        +0 Jura Aevis       | +2 Steelhawk        | +4 Cockatrice
        +1 Piscodaemon      | +3 Squidraken       | +5 Mindflayer
        +1 Ghoul            | +3 Ghast            | +5 Revenant
        +1 Dryad            | +3 Treant           | +5 Elder Treant
        +1 Wisenkin         | +3 Minotaur         | +5 Sekhret
        +2 Bomb             | +3 Grenade          | +4 Exploder
        +2 Chocobo          | +3 Black Chocobo    | +4 Red Chocobo
        +3 Malboro          | +4 Ochu             | +5 Great Malboro
        +4 Behemoth         | +6 Behemoth King    | +6 Dark Behemoth
        +4 Dragon           | +6 Blue Dragon      | +6 Red Dragon
        +4 Hydra            | +6 Greater Hydra    | +6 Tiamat


    Notes:

    * Human "Elite Classes" (+4) are Ninja, Samurai, Summoner, and Arithmetician. All other classes are +2,
      except for Squire, which is +0.

    * Chocobos, Bombs, and Malboros only increase by +1 per upgrade instead of +2 because I never got the
      impression that the different types were meant to be *that* much more powerful or scary. In other words,
      Chocobos, Bombs, and Malboros are powerful "as a category" rather than as individual monsters types.
      This also leaves room for Behemoths, Dragons, and Hydras to be extra terrifying.

    * A side benefit of this system - monster variants are much more obvious and learnable than they were
      before. For example, previously a Skeletal Fiend never seemed much more powerful than a Skeleton - they
      were just a different color and maybe had one different spell. But now that Skeletal Fiends are always
      4 levels higher than Skeletons, they should always be a more frightening enemy.

    * Mandalia Plains (with its base level 1) caused weirdness with some monsters, so they use a slightly
      different progression on that map:

        +0 Goblin           | +1 Black Goblin     | +2 Gobbledygook
        +1 Red Panther      | +2 Coeurl           | +3 Vampire Cat


**************************************************************************************************************

  Step 3.) Putting it all together (with an example)

    Now that we have location base levels and monster level modifiers, all we have left to do is add them
    together. In other words, each individual monster's level follows this formula:

    MonsterLevel = LocationBase + MonsterModifier

    For example, let's assign levels to the Fovoham Windflats West 4 random battle. The following monsters can
    appear in this battle:

        Goblin
        Gobbledygook
        Squidraken
        Mindflayer
        Minotaur
        Sekhret
        Summoner

    Consulting the Locations chart above, we see that the Fovoham Windflats location has a base level of 6. We
    consult the Monsters chart above and add each monster's modifier to the base level of 6 to get the
    following results:

        Goblin       = MonsterModifier -1 + LocationBase 6 = Level 05
        Gobbledygook = MonsterModifier  1 + LocationBase 6 = Level 07
        Squidraken   = MonsterModifier  3 + LocationBase 6 = Level 09
        Mindflayer   = MonsterModifier  5 + LocationBase 6 = Level 11
        Minotaur     = MonsterModifier  3 + LocationBase 6 = Level 09
        Sekhret      = MonsterModifier  5 + LocationBase 6 = Level 11
        Summoner     = MonsterModifier  4 + LocationBase 6 = Level 10


    Notes:

    * In the example above, you can see that we exceeded our original estimated high value for the Fovoham
      Windflats level range, which was 9. This particular battle will be higher difficulty than the other
      random battles on this location, but I think that's fine. As long as it doesn't happen all the time,
      it's okay to break the mold every now and then, just to keep the player on their toes. If everything was
      *perfectly* balanced all the time, then there'd be fewer surprises during gameplay!

    * In some cases there were enemies that were specifically made weirdly more powerful than normal in the
      vanilla game. These cases were preserved by adding their extra levels onto the result of the formula
      above as a one-off bonus.

      For example, there's a random battle in Araguay Woods with an Archer who was set to 5 levels higher than
      your party level. So in this mod, that Archer was given a 5 level bonus (set to level 15 instead of
      level 10). (Archer 2 + Araguay Woods 8 + One-off Bonus 5).


**************************************************************************************************************

  Step 4.) Playtesting

    The final phase was playing through the game multiple times, fighting different numbers of random battles
    per playthrough in order to test them at different power levels. Thankfully, this system seems pretty
    robust, as I didn't encounter any problems or unexpected situations!
    I watched for the following potential problems:

    * What if my "base levels" don't result in a good experience for the player? In theory they should, since
      they are based on the previous story battle, but in practice it may turn out differently than I what I
      expect.
      Result: Nope, this felt completely fine.

    * The value of each monster "upgrade" is flat regardless of the base level. For example, each Skeleton
      upgrade is worth +2 levels no matter whether it's 2/4/6 or 32/34/36. Does this make the upgrades too
      swingy in the early game and/or not interesting enough in the late game?
      Result: Nope, this was fine as well. It turns out +1 level is significant no matter what part of the
      game you're in. This makes sense based on how stats scale upward as you gain levels (as a multiplier on
      your previous value - so higher values grow faster).

    * Does this actually solve the problem that it aims to address (that random battles were very annoying and
      usually more difficult than the story battles)?
      Result: It does! Story battles now feel more significant than random battles. Also, it's nice having the
      choice of how powerful I want my random battle to be. If I want to fight a weaker battle, I can travel
      to earlier areas for it!

    * Did I miss anything? I only unscaled the random battles that had labels in FFTPatcher. There are several
      battles that are not labeled that had scaled enemies, but I wouldn't even know what levels to assign
      them because I don't know where these battles take place! Hopefully they are unused.
      Result: After ten playthroughs, I haven't spotted any issues yet!


**************************************************************************************************************

    --  (C) 2020 - 2023  Tzepish (Blaine Higdon)
